#ifndef OMOPERATIONBASE_H
#define OMOPERATIONBASE_H
#include <QObject>

class OMOperationManager;
class OMOperationContext;
class OMOperationBase : public QObject
{
    Q_OBJECT

public:
    OMOperationBase();

public:
    static void setOperationManager(OMOperationManager* operMgr);
    static void setOperationContext(OMOperationContext* context);
    static OMOperationContext* operationContext(void);

    virtual void initialize(void) = 0;

public slots:
    virtual void exec(void) = 0;

protected:
    static OMOperationManager* mOperationManager;
    static OMOperationContext* mOperationContext;
};

#endif // OMOPERATIONBASE_H
